import matplotlib.pyplot as plt
import numpy as np

# 性能指标
metrics = ['AUC', 'MRR', 'nDCG@5', 'nDCG@10']

# 模拟CAFI - can的数据
cafi_can = [0.68, 0.32, 0.35, 0.43]

# 模拟CAFI - fine的数据
cafi_fine = [0.67, 0.31, 0.34, 0.42]

# 模拟CAFI - user的数据
cafi_user = [0.67, 0.31, 0.34, 0.42]

# 模拟CAFI的数据
cafi = [0.69, 0.33, 0.36, 0.44]

# 设置柱状图的宽度
bar_width = 0.2

# 设置横坐标的位置
r1 = np.arange(len(metrics))
r2 = [x + bar_width for x in r1]
r3 = [x + bar_width for x in r2]
r4 = [x + bar_width for x in r3]

# 绘制柱状图
plt.bar(r1, cafi_can, width=bar_width, label='MFMR - can', color='navy')
plt.bar(r2, cafi_fine, width=bar_width, label='MFMR - fine', color='khaki')
plt.bar(r3, cafi_user, width=bar_width, label='MFMR - user', color='skyblue')
plt.bar(r4, cafi, width=bar_width, label='MFMR', color='lightgreen')

# 添加x轴标签
plt.xticks([r + bar_width * 1.5 for r in range(len(metrics))], metrics)

# 添加标题和坐标轴标签
plt.title('')
plt.xlabel('')
plt.ylabel('')

# 添加图例
plt.legend()

# 保存图片
plt.savefig('ablation_performance.png')

# 显示图形（如果需要在脚本运行时查看图形）
plt.show()